import java.util.Random;
import java.util.Scanner;

public class Test {
    //编写代码模拟三次密码输入的场景。 最多能输入三次密码，
    //密码正确，提示“登录成功”,密码错误，可以重新输入，
    //最多输入三次。三次均错，则提示退出程序
    public static void main16(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = 1;
        for (; i < 4; i++) {
            int a = sc.nextInt();
            if(a == 88888888){
                System.out.println("登陆成功");
                break;
            }else{
                System.out.println("密码错误，请重新输入");
            }
        }
        if(i > 3){
            System.out.println("3次机会用完，退出");
        }
    }

    //输出一个整数的每一位
    public static void main15(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        while(a != 0){
            System.out.print(a % 10 + " ");
            a = a / 10;
        }
    }

    public static void main14(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){     //输入5
            int a = sc.nextInt();   //a = 5
            int b = 1;              //标记打印位置
            int c = a;
            for(int j = 1; j <= a; j++){      //循环5次，打印5行
                for(int i = 1; i <= a; i++){  //每行打印符号
                    if(i == b || i == c) {       //每行什么位置打印
                        System.out.print('*');
                    }else{
                        System.out.print(' ');
                    }
                }
                b++;    //更新打印位置
                c--;
                System.out.println();
            }
        }
    }

    //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
    public static void main13(String[] args) {
        double sum = 0;
        int flag = 1;
        for (int i = 1; i <= 100 ; i++) {
            sum += flag * (1.0 / i);
            flag = -flag;
        }
        System.out.println(sum);
    }

    //数一下 1到 100 的所有整数中出现多少个数字9
    public static void main12(String[] args) {
        int count = 0;
        for (int i = 1; i <= 99 ; i++) {
            int tmp = i;
            while(tmp != 0){
                if(tmp % 10 == 9){
                    count ++;
                }
                 tmp = tmp / 10;
            }
        }
        System.out.println("1~100中9的个数："+count);
    }

    // 完成猜数字游戏
    public static void main11(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random random = new Random();
        int r = random.nextInt(100);
        while(true) {
            System.out.println("请输入你猜的数：");
            int guess = sc.nextInt();
            if(guess < r){
                System.out.println("猜小啦");
            }else if(guess > r){
                System.out.println("猜大啦");
            }else{
                System.out.println("猜对啦！");
                break;
            }
        }
    }

    //获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列。
    //5 0101
    public static void main10(String[] args) {
      Scanner sc = new Scanner(System.in);
      int num = sc.nextInt();
      int i = 1; //测奇数位
      int j = 2; //测偶数位
      //循环测奇数位
      System.out.println("奇数位：");
      while(i != 0){
          int tmp = num & i;
          if(tmp == 0){
              System.out.print(0);
          }else{
              System.out.print(1);
          }
          i <<= 2;
      }
        System.out.println();
      //循环测偶数位
        System.out.println("偶数位：");
      while(j != 0){
          int tmp = num & j;
          if(tmp == 0){
              System.out.print(0);
          }else{
              System.out.print(1);
          }
          j <<= 2;
      }
        System.out.println();
    }

    // 写一个函数返回参数二进制中 1 的个数//最简单方法
    public static void main9(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int count = 0; //用来存储1的数量
        while(num != 0){
            num = num & (num - 1);
            count++;
        }
        System.out.printf("有%d个1", count);
    }

    // 写一个函数返回参数二进制中 1 的个数//最复杂方法
    public static void main8(String[] args) {
        //5 0101 4 0100
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int i = 1; //0001
        int b = 0; //记录相与之后的数
        int count = 0; //记录有多少个1
        while(i != 0){
            b = num & i;
            if(b != 0){
                count ++;
            }
            i <<= 1;
        }
        System.out.println(num+"有"+count+"个1");
    }

    //求出0～99999之间的所有“水仙花数、四叶玫瑰数和五角星数”并输出。
    public static void main7(String[] args) {
        //循环计算0到99999
        for (int i = 0; i <= 99999 ; i++) {
            int sum = 0;    //记录和
            int tmp = i;    //存储i的数等会操作不会改变i
            int tmp2 = i;
            int count = 0;  //指数
            //记录有多少位，从而确定指数
            while(tmp2 != 0){
                int b = tmp2 % 10;
                tmp2 /= 10;
                count++;
            }
            //把每个数分别拿出来求幂再相加
            while(tmp != 0){
                int a =tmp % 10;    //分离出最低位
                sum += Math.pow(a,count);   //求幂再相加
                tmp /= 10;  //消掉最低位
            }
            //隔绝不要的数，并判断要的数是什么数
            if(i == sum && i > 10 ) {
                switch (count) {
                    case 3:
                        System.out.println(i + "是水仙花数");
                        break;
                    case 4:
                        System.out.println(i + "是四叶玫瑰数");
                        break;
                    case 5:
                        System.out.println(i + "是五角星数");
                }
            }
        }
    }

    //求出0～999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数
    //本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)
    public static void main6(String[] args) {
        for (int i = 1; i <= 999 ; i++) {
            int sum = 0;
            int tmp = i;
            while(tmp != 0){
                int a =tmp % 10;
                sum += Math.pow(a,3);// 0100 0011 0111
                tmp /= 10;
            }
            if(i == sum){
                System.out.println(i+"是水仙花数");
            }
        }
    }

    //求两个正整数的最大公约数,欧几里德法
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个正整数");
        int a = sc.nextInt();
        int b = sc.nextInt();
        int tmp = 0;
        if(a < b){
            tmp = a;
            a = b;
            b = tmp;
        }
        if(a > b){
            while(a % b != 0){
                tmp = a % b;
                a = b;
                b = tmp;
            }
            System.out.println("他们的最大公约数是"+b);
        }
    }

    // 输出乘法口诀表
    public static void main4(String[] args) {
        for (int i = 1; i <= 9 ; i++) {
            for (int j = 1; j <= i ; j++) {
                System.out.printf("%d*%d=%-2d ",j,i,i*j);
            }
            System.out.println();
        }
    }
    // 输出 1000 - 2000 之间所有的闰年
    public static void main3(String[] args) {
        for (int year = 1000; year <= 2000 ; year++) {
            if((year % 4 == 0)&&(year % 100 != 0)||(year % 400 == 0)){
                System.out.println(year + "是闰年");
            }
        }
    }
    //判定一个数字是否是素数
    public static void main2(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int i = 2;
        for (; i <= Math.sqrt(a) ; i++) {
            if(a % i == 0){
                break;
            }
            }if(i > Math.sqrt(a)){
            System.out.println(a + "是素数");
        }
    }
    // 打印 1 - 100 之间所有的素数
    public static void main1(String[] args) {
        for (int i = 1; i <= 100 ; i++) {
            int j = 2;
            for (; j <= Math.sqrt(i) ; j++) {
                if(i % j == 0){
                    break;
                }
            }if(j>Math.sqrt(i) && i != 1){
                System.out.println(i);
            }
        }
    }
}
